<script type="text/javascript" src="/static/crypto-js-4.2.0/crypto-js.js"></script>

<h1>请按f12查看</h1>
<script type="text/javascript">
    //var encrypted = CryptoJS.AES(...);
    //var encrypted = CryptoJS.SHA256(...);


    const key = CryptoJS.enc.Utf8.parse("mythinkphpmythinkphpmyth");  //十六进制数作为密钥
    const iv = CryptoJS.enc.Utf8.parse("1234567812345678");  //十六进制数作为密钥

    let from = 'hahaha';

    // 加密解密3可行 但需要测试php对应
    // 加密解密4可行 已经和php对应


    enStr = Encrypt4(from);
    deStr = Decrypt4(enStr);
    console.log('原始字符串：' + from)
    console.log('加密字符串：' + enStr)
    console.log('解密字符串：' + deStr)


    // DES加密函数
    function Encrypt4(data) {
        // 使用DES算法对数据进行加密
        var encrypted = CryptoJS.AES.encrypt(data, key, {
            iv: iv,
            mode: CryptoJS.mode.CBC, // 使用CBC模式
            padding: CryptoJS.pad.Pkcs7 // 使用PKCS7填充方式
        });

        return encrypted.toString(); // 返回加密后的字符串
    }

    // DES解密函数
    function Decrypt4(content) {
        // 使用DES算法对内容进行解密
        // 去除换行符
        var bytes = CryptoJS.AES.decrypt(content, key, {
            iv: iv,
            mode: CryptoJS.mode.CBC, // 使用CBC模式
            padding: CryptoJS.pad.Pkcs7 // 使用PKCS7填充方式
        });

        // 将解密后的字节数组转换为UTF-8编码的字符串，并返回
        var decryptResult = bytes.toString(CryptoJS.enc.Utf8);
        //return CryptoJS.enc.Utf8.stringify(bytes);

        return decryptResult.toString();
    }
</script>
